var pantalla = "";
var tipoSelected = "";

function resetMarkers() {
    IdCliente = -1;
    IdReserva = -1;
    IdRegistracion = -1;
}

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}
/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
var invChangeImg;
var bpat = /\S/;


function checkEmpty(obj) {
    if (!obj.value) {
        alert(obj.alt + " no puede estar vacío");
        obj.focus();
    }
    return obj.value;
}

function isNonblank(s) {
    return String(s).search(bpat) != -1;
}

function showResultado(obj, s) {
    $("#resultadosServer").fadeTo("slow", 1.0);
    $("#resultadosServer").html(s);
    window.clearInterval(invChangeImg);
    invChangeImg = window.setInterval(function() {
        hideResultados(obj);
    }, 2000);
}

function hideResultados() {
    $("#resultadosServer").fadeTo("slow", 0.0);
    //$("#resultadosServer").html("");
}


// Funciones Ajax de bbdd
function save(url, data, focusOn, form) {
    $.ajax({
        type: "post",
        url: url,
        data: "type=0" + data,
        success: function(data) {
            showMessages($("#resultadosServer"), data);
            $(focusOn).focus();
            form.reset();
            get()('Id', url);

        }

    });
}

function update(url, data, focusOn, form) {
    $.ajax({
        type: "post",
        url: url,
        data: "type=1" + data,
        success: function(data) {
            showMessages($("#resultados"), data);
            $(focusOn).focus();
            form.reset();
            get()('Id', url);

        }

    });
}

function del(id, url, s) {
    var r = confirm("¿Desea realmente eliminar el " + s + "?");
    if (r == true) {
        $.ajax({
            type: "post",
            url: url,
            data: "type=2&id=" + id,
            success: function(data) {
                get("Id");
            }

        });
    }
}

function get(orderBy, url) {

    $.ajax({
        type: "post",
        url: url,
        data: "type=0&orderby=" + orderBy,
        success: function(data) {
            $("#listado").html(data);
        }

    });

}

// Mensajes
function showMessages(obj, s) {
    $("#resultados").fadeTo("slow", 1.0);
    $("#resultados").html(s);
    window.clearInterval(invChangeImg);
    invChangeImg = window.setInterval(function() {
        hideMessages(obj);
    }, 2000);
}

function hideMessages() {
    $("#resultados").fadeTo("slow", 0.0);
    //$("#resultados").html("");
}

// Seleccion de días
function selectDias(obj) {

}


// Pantalla principal
// Se guardan todos los datos referentes a la cama sobre la que se está trabajando y el rango de fechas
// Para conseguir el id de la reserva u ocupación, se guarda en el value del button
var anoInicio = -1;
var mesInicio = -1;
var diaInicio = -1;
var roomInicio = -1;
var camaInicio = -1;
var diaFin = -1;
var mesFin = -1;
var anoFin = -1;
var roomFin = -1;
var camaFin = -1;
var tipoSelectedInicio = "";
var tipoSelectedFin = "";
var xMouse = 0;
var yMouse = 0;

$(document).ready(function() {
    $(document).mousemove(function(e) {
        xMouse = e.pageX;
        yMouse = e.pageY;
    });
});



function fixSizeHabitaciones() {

    $("#principalOcupacionCont").css({width: ($(window).width() * .97)});
    
//    $("#principalOcupacionCont").css({height: ($(window).height() * 0.75)});
    $("#principalOcupacionCont").css({height: ($(window).height() * 0.74)});
    $("#principalOcupacionCont").css({overflow: "scroll"});
    getDetalleOcupacion();
    
    $("#spacerTD").css({width: ($(window).width() * .15)});
//    alert(checkSaldo());
    checkSaldo('principal');
    isCajaOpen('principal');
    

}

// Recibe el llamado desde caja y muestra el saldo
function mostrarSaldoPrincipal(){
    $("#principalSaldoActual").text(window.saldoCaja);
}

// Recibe el dato desde caja para actualizar 
function mostrarCajaEstado(estado){
    $("#principalEstadoCaja").text(estado);
    
}

function getDetail(obj) {
    var arrSelected = obj.name.split("-");

    if ($(obj).val().split("-")[0] == "R") {
        window.tipoSelected = "R";
        showMenu(2);
        return;
    }
    if ($(obj).val().split("-")[0] == "O") {
        window.tipoSelected = "O";
        showMenu(3);
        return;
    }

    window.tipoSelected = "V";
    hideMenu(2);
    hideMenu(3);
    //alert(obj.name);

    // Selecciono el primer día
    if (diaInicio == -1) {
        //alert('inicio');
        selectFirst(arrSelected);


    } else {
        // Selecciono el segundo
        if (diaFin == -1 && tipoSelectedInicio == arrSelected[5]) {
            //alert('segundo');
            selectSecond(arrSelected);
        } else {
            //alert('limpia');
            // Limpio la selección
            clearSelection();
            // Vuelvo a seleccionar el primero
            selectFirst(arrSelected);
        }
    }


}

function selectFirst(arrSelected) {

    window.anoInicio = arrSelected[0];
    window.mesInicio = arrSelected[1];
    window.diaInicio = arrSelected[2];
    window.roomInicio = arrSelected[3];
    window.camaInicio = arrSelected[4];
    window.tipoSelectedInicio = arrSelected[5];
    $("#lblPrincipalSeleccionado").text("Habitación: " + window.roomInicio + " Cama: " + window.camaInicio);

}
function selectSecond(arrSelected) {
    window.anoFin = arrSelected[0];
    window.mesFin = arrSelected[1];
    window.diaFin = arrSelected[2];
    window.roomFin = arrSelected[3];
    window.camaFin = arrSelected[4];
    window.tipoSelectedFin = arrSelected[5];
    selectDaysInGrid(1);

}

function clearSelection() {
    // Si el segundo ya está seleccionado, limpio la selección
    $("#lblPrincipalSeleccionado").text("");
    selectDaysInGrid(-1);
    window.diaInicio = -1;
    window.mesInicio = -1;
    window.anoInicio = -1;
    window.roomInicio = -1;
    window.camaInicio = -1;
    window.diaFin = -1;
    window.mesFin = -1;
    window.anoFin = -1;
    window.roomFin = -1;
    window.camaFin = -1;
    window.tipoSelectedInicio = "";
    window.tipoSelectedFin = "";
    hideMenu(1);
    hideMenu(2);
}

function showMenu(id) {
    if (id == 1) {
        $("#contextMenu").css("top", yMouse);
        $("#contextMenu").css("left", xMouse);
        $("#contextMenu").css("visibility", "visible");
        hideMenu(3);
        hideMenu(2);
    }
    if (id == 2) {
        $("#contextMenuReserva").css("top", yMouse);
        $("#contextMenuReserva").css("left", xMouse);
        $("#contextMenuReserva").css("visibility", "visible");
        hideMenu(1);
        hideMenu(3);
    }
    if (id == 3) {
        $("#contextMenuRegistracion").css("top", yMouse);
        $("#contextMenuRegistracion").css("left", xMouse);
        $("#contextMenuRegistracion").css("visibility", "visible");
        hideMenu(1);
        hideMenu(2);
    }
}


function hideMenu(id) {
    if (id == 1) {
        $("#contextMenu").css("visibility", "hidden");
    }
    else if (id == 2) {
        $("#contextMenuReserva").css("visibility", "hidden");
    }
    else if (id == 3) {
        $("#contextMenuRegistracion").css("visibility", "hidden");
    }
}

function selectDaysInGrid(oper) {
    if (oper == 1) {
        // pinta

        if (diaInicio != -1 && diaFin != -1) {

            // Verifico si el rango está libre
            for (var x = parseInt(diaInicio); x <= parseInt(diaFin); x++) {
                var name = anoInicio + "-" + mesInicio + "-" + x + "-" + roomInicio + "-" + camaInicio + "-" + tipoSelectedInicio;
                var toChange = document.getElementById(name);
                var valueToCompare = $(toChange).val();
                if (valueToCompare.indexOf("R") > -1) {
                    //alert('loop 1 ' + libre + ' ' + index);
                    return;
                }
            }

            //alert('pinta');
            if (mesInicio == mesFin) {
                // Si está dentro del mismo mes
                for (var i = parseInt(diaInicio); i <= parseInt(diaFin); i++) {
                    var name = anoInicio + "-" + mesInicio + "-" + i + "-" + roomInicio + "-" + camaInicio + "-" + tipoSelectedInicio;
                    var toChange = document.getElementById(name);
                    $(toChange).css("background-color", "white");
                    $(toChange).css("color", "white");
                }
            } else {
                // Si está en otro mes
                if ($("#cboMeses").prop("value") == mesInicio) {
                    // Esta en el mes de inicio, tiene que pintar desde la selección hasta el último día del mes

                    // Dias en el mes
                    var dias = new Date(year, month, 0).getDate();

                    for (var i = parseInt(diaInicio); i <= parseInt(dias); i++) {
                        var name = anoInicio + "-" + mesInicio + "-" + i + "-" + roomInicio + "-" + camaInicio + "-" + tipoSelectedInicio;
                        var toChange = document.getElementById(name);
                        $(toChange).css("background-color", "white");
                        $(toChange).css("color", "white");
                    }
                } else {
                    // Esta en el mes de inicio, tiene que pintar desde el primer día del mes hasta el diaFin
                    for (var i = 1; i <= parseInt(diaFin); i++) {
                        var name = anoFin + "-" + mesFin + "-" + i + "-" + roomInicio + "-" + camaInicio + "-" + tipoSelectedInicio;
                        var toChange = document.getElementById(name);
                        $(toChange).css("background-color", "white");
                        $(toChange).css("color", "white");
                    }

                }
            }

            // muestro el menu
            showMenu(1);
        }
    } else {
        // despinta
        if (diaInicio != -1 && diaFin != -1) {
            //alert('despinta');
            for (var i = parseInt(diaInicio); i <= parseInt(diaFin); i++) {
                var name = anoInicio + "-" + mesInicio + "-" + i + "-" + roomInicio + "-" + camaInicio + "-" + tipoSelectedInicio;
                var toChange = document.getElementById(name);
                var valueToCompare = $(toChange).val();
                if (valueToCompare.indexOf("R") > -1) {
                    $(toChange).css("background-color", "whitesmoke");
                    $(toChange).css("color", "whitesmoke");
                } else if (valueToCompare.indexOf("O") > -1) {
                    $(toChange).css("background-color", "whitesmoke");
                    $(toChange).css("color", "whitesmoke");
                } else if (valueToCompare.indexOf("V") > -1) {
                    $(toChange).css("background-color", "wheat");
                    $(toChange).css("color", "wheat");
                }
            }
        }
    }

}


function changeBack(obj) {
    $(obj).hover(function() {
        $(obj).css("background-color", "white");
        $(obj).css("color", "white");
    }, function() {
        $(obj).css("background-color", "wheat");
        $(obj).css("color", "wheat");
    });
}

function completeDateWithZeros(str) {

    if (str.length < 2) {
        if (parseInt(str) < 10) {
            str = "0" + str;
        }
    }
    return str;
}

function fireOnclick(id) {
    var obj = document.getElementById(id);
    if ($(obj).val().split("-")[0] == "O") {
        window.IdRegistracion = $(obj).val().split("-")[1];
    }
    if ($(obj).val().split("-")[0] == "R") {
        window.IdReserva = $(obj).val().split("-")[1];
    }
    if (typeof obj.onclick == "function") {
        obj.onclick.apply(obj);
    }
}

function cantDias(fechaUno, fechaDos) {
    var date1 = new Date(fechaUno);
    var date2 = new Date(fechaDos);
    var timeDiff = Math.abs(date2.getTime() - date1.getTime());
    var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
    return diffDays;
}


function nextMonth(){
    
    
    var month = $("#cboMeses").prop("value");
    var year = $("#cboAnos").prop("value");
    
    month = parseInt(month) + 1;
    if ( parseInt(month) > 12 ){
        year = parseInt(year) + 1;
        month = 1;
    }
    
    
    $("#cboMeses").val(month);
    $("#cboAnos").val(year);
    
    getDetalleOcupacion();
}

function prevMonth(){
    var month = $("#cboMeses").prop("value");
    var year = $("#cboAnos").prop("value");
    
    month = parseInt(month) - 1;
    if ( parseInt(month) < 1 ){
        year = parseInt(year) - 1;
        month = 12;
    }
    
    
    $("#cboMeses").val(month);
    $("#cboAnos").val(year);
    
    getDetalleOcupacion();
}